home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / TextCommon.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  19.6 KB  |  422 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        TextCommon.a
  3. ;
  4. ;    Contains:    TextEncoding-related types and constants, and prototypes for related functions 
  5. ;
  6. ;    Version:    Technology:    Mac OS 8
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  18. __TEXTCOMMON__ SET 1
  19.  
  20.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  21.     include 'MacTypes.a'
  22.     ENDIF
  23.  
  24. ;  TextEncodingBase type & values 
  25. ;  (values 0-32 correspond to the Script Codes defined in Inside Macintosh: Text pages 6-52 and 6-53 
  26. ; typedef UInt32                         TextEncodingBase
  27.  
  28.  
  29.                                                             ; Mac OS encodings
  30. kTextEncodingMacRoman            EQU        0
  31. kTextEncodingMacJapanese        EQU        1
  32. kTextEncodingMacChineseTrad        EQU        2
  33. kTextEncodingMacKorean            EQU        3
  34. kTextEncodingMacArabic            EQU        4
  35. kTextEncodingMacHebrew            EQU        5
  36. kTextEncodingMacGreek            EQU        6
  37. kTextEncodingMacCyrillic        EQU        7
  38. kTextEncodingMacDevanagari        EQU        9
  39. kTextEncodingMacGurmukhi        EQU        10
  40. kTextEncodingMacGujarati        EQU        11
  41. kTextEncodingMacOriya            EQU        12
  42. kTextEncodingMacBengali            EQU        13
  43. kTextEncodingMacTamil            EQU        14
  44. kTextEncodingMacTelugu            EQU        15
  45. kTextEncodingMacKannada            EQU        16
  46. kTextEncodingMacMalayalam        EQU        17
  47. kTextEncodingMacSinhalese        EQU        18
  48. kTextEncodingMacBurmese            EQU        19
  49. kTextEncodingMacKhmer            EQU        20
  50. kTextEncodingMacThai            EQU        21
  51. kTextEncodingMacLaotian            EQU        22
  52. kTextEncodingMacGeorgian        EQU        23
  53. kTextEncodingMacArmenian        EQU        24
  54. kTextEncodingMacChineseSimp        EQU        25
  55. kTextEncodingMacTibetan            EQU        26
  56. kTextEncodingMacMongolian        EQU        27
  57. kTextEncodingMacEthiopic        EQU        28
  58. kTextEncodingMacCentralEurRoman    EQU        29
  59. kTextEncodingMacVietnamese        EQU        30
  60. kTextEncodingMacExtArabic        EQU        31                    ; The following use script code 0, smRoman
  61. kTextEncodingMacSymbol            EQU        33
  62. kTextEncodingMacDingbats        EQU        34
  63. kTextEncodingMacTurkish            EQU        35
  64. kTextEncodingMacCroatian        EQU        36
  65. kTextEncodingMacIcelandic        EQU        37
  66. kTextEncodingMacRomanian        EQU        38
  67. kTextEncodingMacCeltic            EQU        39
  68. kTextEncodingMacGaelic            EQU        40                    ; Beginning in Mac OS 8.5, the following meta-value is used to indicate Unicode in some parts
  69.                                                             ; of the Mac OS which previously only expected a Mac OS script code. In some of these places,
  70.                                                             ; only 7 bits are available to indicate encoding (script code), so kTextEncodingUnicodeDefault
  71.                                                             ; cannot be used. For example, kTextEncodingMacUnicode can be used to indicate Unicode in the
  72.                                                             ; 7-bit script code field of a Unicode input method's ComponentDescription.componentFlags field;
  73.                                                             ; it can also be used to indicate Unicode in the 16-bit script code field of an AppleEvent's
  74.                                                             ; typeIntlWritingCode text tag.
  75. kTextEncodingMacUnicode            EQU        $7E                    ; Meta-value, Unicode as a Mac encoding
  76.                                                             ; The following use script code 4, smArabic
  77. kTextEncodingMacFarsi            EQU        $8C                    ; Like MacArabic but uses Farsi digits
  78.                                                             ; The following use script code 7, smCyrillic
  79. kTextEncodingMacUkrainian        EQU        $98                    ; The following use script code 28, smEthiopic
  80. kTextEncodingMacInuit            EQU        $EC                    ; The following use script code 32, smUnimplemented
  81. kTextEncodingMacVT100            EQU        $FC                    ; VT100/102 font from Comm Toolbox: Latin-1 repertoire + box drawing etc
  82.                                                             ; Special Mac OS encodings
  83. kTextEncodingMacHFS                EQU        $FF                    ; Meta-value, should never appear in a table.
  84.                                                             ; Unicode & ISO UCS encodings begin at 0x100
  85. kTextEncodingUnicodeDefault        EQU        $0100                ; Meta-value, should never appear in a table.
  86. kTextEncodingUnicodeV1_1        EQU        $0101
  87. kTextEncodingISO10646_1993        EQU        $0101                ; Code points identical to Unicode 1.1
  88. kTextEncodingUnicodeV2_0        EQU        $0103                ; New location for Korean Hangul
  89. kTextEncodingUnicodeV2_1        EQU        $0103                ; We treat both Unicode 2.0 and Unicode 2.1 as 2.1
  90.                                                             ; ISO 8-bit and 7-bit encodings begin at 0x200
  91. kTextEncodingISOLatin1            EQU        $0201                ; ISO 8859-1
  92. kTextEncodingISOLatin2            EQU        $0202                ; ISO 8859-2
  93. kTextEncodingISOLatin3            EQU        $0203                ; ISO 8859-3
  94. kTextEncodingISOLatin4            EQU        $0204                ; ISO 8859-4
  95. kTextEncodingISOLatinCyrillic    EQU        $0205                ; ISO 8859-5
  96. kTextEncodingISOLatinArabic        EQU        $0206                ; ISO 8859-6, = ASMO 708, =DOS CP 708
  97. kTextEncodingISOLatinGreek        EQU        $0207                ; ISO 8859-7
  98. kTextEncodingISOLatinHebrew        EQU        $0208                ; ISO 8859-8
  99. kTextEncodingISOLatin5            EQU        $0209                ; ISO 8859-9
  100.                                                             ; MS-DOS & Windows encodings begin at 0x400
  101. kTextEncodingDOSLatinUS            EQU        $0400                ; code page 437
  102. kTextEncodingDOSGreek            EQU        $0405                ; code page 737 (formerly code page 437G)
  103. kTextEncodingDOSBalticRim        EQU        $0406                ; code page 775
  104. kTextEncodingDOSLatin1            EQU        $0410                ; code page 850, "Multilingual"
  105. kTextEncodingDOSGreek1            EQU        $0411                ; code page 851
  106. kTextEncodingDOSLatin2            EQU        $0412                ; code page 852, Slavic
  107. kTextEncodingDOSCyrillic        EQU        $0413                ; code page 855, IBM Cyrillic
  108. kTextEncodingDOSTurkish            EQU        $0414                ; code page 857, IBM Turkish
  109. kTextEncodingDOSPortuguese        EQU        $0415                ; code page 860
  110. kTextEncodingDOSIcelandic        EQU        $0416                ; code page 861
  111. kTextEncodingDOSHebrew            EQU        $0417                ; code page 862
  112. kTextEncodingDOSCanadianFrench    EQU        $0418                ; code page 863
  113. kTextEncodingDOSArabic            EQU        $0419                ; code page 864
  114. kTextEncodingDOSNordic            EQU        $041A                ; code page 865
  115. kTextEncodingDOSRussian            EQU        $041B                ; code page 866
  116. kTextEncodingDOSGreek2            EQU        $041C                ; code page 869, IBM Modern Greek
  117. kTextEncodingDOSThai            EQU        $041D                ; code page 874, also for Windows
  118. kTextEncodingDOSJapanese        EQU        $0420                ; code page 932, also for Windows; Shift-JIS with additions
  119. kTextEncodingDOSChineseSimplif    EQU        $0421                ; code page 936, also for Windows; was EUC-CN, now GBK (EUC-CN extended)
  120. kTextEncodingDOSKorean            EQU        $0422                ; code page 949, also for Windows; Unified Hangul Code (EUC-KR extended)
  121. kTextEncodingDOSChineseTrad        EQU        $0423                ; code page 950, also for Windows; Big-5
  122. kTextEncodingWindowsLatin1        EQU        $0500                ; code page 1252
  123. kTextEncodingWindowsANSI        EQU        $0500                ; code page 1252 (alternate name)
  124. kTextEncodingWindowsLatin2        EQU        $0501                ; code page 1250, Central Europe
  125. kTextEncodingWindowsCyrillic    EQU        $0502                ; code page 1251, Slavic Cyrillic
  126. kTextEncodingWindowsGreek        EQU        $0503                ; code page 1253
  127. kTextEncodingWindowsLatin5        EQU        $0504                ; code page 1254, Turkish
  128. kTextEncodingWindowsHebrew        EQU        $0505                ; code page 1255
  129. kTextEncodingWindowsArabic        EQU        $0506                ; code page 1256
  130. kTextEncodingWindowsBalticRim    EQU        $0507                ; code page 1257
  131. kTextEncodingWindowsVietnamese    EQU        $0508                ; code page 1258
  132. kTextEncodingWindowsKoreanJohab    EQU        $0510                ; code page 1361, for Windows NT
  133.                                                             ; Various national standards begin at 0x600
  134. kTextEncodingUS_ASCII            EQU        $0600
  135. kTextEncodingJIS_X0201_76        EQU        $0620                ; JIS Roman and 1-byte katakana (halfwidth)
  136. kTextEncodingJIS_X0208_83        EQU        $0621
  137. kTextEncodingJIS_X0208_90        EQU        $0622
  138. kTextEncodingJIS_X0212_90        EQU        $0623
  139. kTextEncodingJIS_C6226_78        EQU        $0624
  140. kTextEncodingGB_2312_80            EQU        $0630
  141. kTextEncodingGBK_95                EQU        $0631                ; annex to GB 13000-93; for Windows 95; EUC-CN extended
  142. kTextEncodingKSC_5601_87        EQU        $0640                ; same as KSC 5601-92 without Johab annex
  143. kTextEncodingKSC_5601_92_Johab    EQU        $0641                ; KSC 5601-92 Johab annex
  144. kTextEncodingCNS_11643_92_P1    EQU        $0651                ; CNS 11643-1992 plane 1
  145. kTextEncodingCNS_11643_92_P2    EQU        $0652                ; CNS 11643-1992 plane 2
  146. kTextEncodingCNS_11643_92_P3    EQU        $0653                ; CNS 11643-1992 plane 3 (was plane 14 in 1986 version)
  147.                                                             ; ISO 2022 collections begin at 0x800
  148. kTextEncodingISO_2022_JP        EQU        $0820
  149. kTextEncodingISO_2022_JP_2        EQU        $0821
  150. kTextEncodingISO_2022_CN        EQU        $0830
  151. kTextEncodingISO_2022_CN_EXT    EQU        $0831
  152. kTextEncodingISO_2022_KR        EQU        $0840                ; EUC collections begin at 0x900
  153. kTextEncodingEUC_JP                EQU        $0920                ; ISO 646, 1-byte katakana, JIS 208, JIS 212
  154. kTextEncodingEUC_CN                EQU        $0930                ; ISO 646, GB 2312-80
  155. kTextEncodingEUC_TW                EQU        $0931                ; ISO 646, CNS 11643-1992 Planes 1-16
  156. kTextEncodingEUC_KR                EQU        $0940                ; ISO 646, KS C 5601-1987
  157.                                                             ; Misc standards begin at 0xA00
  158. kTextEncodingShiftJIS            EQU        $0A01                ; plain Shift-JIS
  159. kTextEncodingKOI8_R                EQU        $0A02                ; Russian internet standard
  160. kTextEncodingBig5                EQU        $0A03                ; Big-5 (has variants)
  161. kTextEncodingMacRomanLatin1        EQU        $0A04                ; Mac OS Roman permuted to align with ISO Latin-1
  162. kTextEncodingHZ_GB_2312            EQU        $0A05                ; HZ (RFC 1842, for Chinese mail & news)
  163.                                                             ; Other platform encodings
  164. kTextEncodingNextStepLatin        EQU        $0B01                ; NextStep encoding
  165.                                                             ; EBCDIC & IBM host encodings begin at 0xC00
  166. kTextEncodingEBCDIC_US            EQU        $0C01                ; basic EBCDIC-US
  167. kTextEncodingEBCDIC_CP037        EQU        $0C02                ; code page 037, extended EBCDIC (Latin-1 set) for US,Canada...
  168.                                                             ; Special value
  169. kTextEncodingMultiRun            EQU        $0FFF                ; Multi-encoding text with external run info
  170.                                                             ; The following are older names for backward compatibility
  171. kTextEncodingMacTradChinese        EQU        2
  172. kTextEncodingMacRSymbol            EQU        8
  173. kTextEncodingMacSimpChinese        EQU        25
  174. kTextEncodingMacGeez            EQU        28
  175. kTextEncodingMacEastEurRoman    EQU        29
  176. kTextEncodingMacUninterp        EQU        32
  177. ;  TextEncodingVariant type & values 
  178. ; typedef UInt32                         TextEncodingVariant
  179.  
  180.  
  181.                                                             ; Default TextEncodingVariant, for any TextEncodingBase
  182. kTextEncodingDefaultVariant        EQU        0                    ; Variants of kTextEncodingMacRoman                                                        
  183. kMacRomanStandardVariant        EQU        0                    ; standard for Mac OS 8.5, 0xDB is EURO SIGN
  184. kMacRomanCurrencySignVariant    EQU        1                    ; earlier Mac OS versions, 0xDB is CURRENCY SIGN
  185.                                                             ; Variants of kTextEncodingMacIcelandic                                                    
  186. kMacIcelandicStandardVariant    EQU        0                    ; 0xBB & 0xBC are fem./masc. ordinal indicators
  187. kMacIcelandicTrueTypeVariant    EQU        1                    ; 0xBB & 0xBC are fi/fl ligatures
  188.                                                             ; Variants of kTextEncodingMacJapanese
  189. kMacJapaneseStandardVariant        EQU        0
  190. kMacJapaneseStdNoVerticalsVariant EQU    1
  191. kMacJapaneseBasicVariant        EQU        2
  192. kMacJapanesePostScriptScrnVariant EQU    3
  193. kMacJapanesePostScriptPrintVariant EQU    4
  194. kMacJapaneseVertAtKuPlusTenVariant EQU    5                    ; Variants of kTextEncodingMacArabic
  195. kMacArabicStandardVariant        EQU        0                    ; 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Cairo)
  196. kMacArabicTrueTypeVariant        EQU        1                    ; 0xC0 is asterisk, 0x2A & 0xAA are multiply signs (e.g. Baghdad)
  197. kMacArabicThuluthVariant        EQU        2                    ; 0xC0 is Arabic five-point star, 0x2A & 0xAA are multiply signs
  198. kMacArabicAlBayanVariant        EQU        3                    ; 8-spoke asterisk, multiply sign, Koranic ligatures & parens
  199.                                                             ; Variants of kTextEncodingMacFarsi
  200. kMacFarsiStandardVariant        EQU        0                    ; 0xC0 is 8-spoke asterisk, 0x2A & 0xAA are asterisk (e.g. Tehran)
  201. kMacFarsiTrueTypeVariant        EQU        1                    ; asterisk, multiply signs, Koranic ligatures, geometric shapes
  202.                                                             ; Variants of kTextEncodingMacHebrew
  203. kMacHebrewStandardVariant        EQU        0
  204. kMacHebrewFigureSpaceVariant    EQU        1                    ; Variants of Unicode & ISO 10646 encodings
  205. kUnicodeNoSubset                EQU        0
  206. kUnicodeCanonicalDecompVariant    EQU        2                    ; canonical decomposition; excludes composed characters
  207.                                                             ; Variants of Big-5 encoding
  208. kBig5_BasicVariant                EQU        0
  209. kBig5_StandardVariant            EQU        1                    ; 0xC6A1-0xC7FC: kana, Cyrillic, enclosed numerics
  210. kBig5_ETenVariant                EQU        2                    ; adds kana, Cyrillic, radicals, etc with hi bytes C6-C8,F9
  211.                                                             ; Unicode variants not yet supported (and not fully defined)
  212. kUnicodeNoCompatibilityVariant    EQU        1
  213. kUnicodeNoComposedVariant        EQU        3
  214. kUnicodeNoCorporateVariant        EQU        4                    ; The following are older names for backward compatibility
  215. kJapaneseStandardVariant        EQU        0
  216. kJapaneseStdNoVerticalsVariant    EQU        1
  217. kJapaneseBasicVariant            EQU        2
  218. kJapanesePostScriptScrnVariant    EQU        3
  219. kJapanesePostScriptPrintVariant    EQU        4
  220. kJapaneseVertAtKuPlusTenVariant    EQU        5                    ; kJapaneseStdNoOneByteKanaVariant = 6,    // replaced by kJapaneseNoOneByteKanaOption
  221.                                                             ; kJapaneseBasicNoOneByteKanaVariant = 7,    // replaced by kJapaneseNoOneByteKanaOption    
  222. kHebrewStandardVariant            EQU        0
  223. kHebrewFigureSpaceVariant        EQU        1
  224. kUnicodeMaxDecomposedVariant    EQU        2                    ; replaced by kUnicodeCanonicalDecompVariant
  225.                                                             ; The following Japanese variant options were never supported and are now deprecated.
  226.                                                             ; In TEC 1.4 and later their functionality is replaced by the Unicode Converter options listed.
  227. kJapaneseNoOneByteKanaOption    EQU        $20                    ; replaced by UnicodeConverter option kUnicodeNoHalfwidthCharsBit
  228. kJapaneseUseAsciiBackslashOption EQU    $40                    ; replaced by UnicodeConverter option kUnicodeForceASCIIRangeBit
  229. ;  TextEncodingFormat type & values 
  230. ; typedef UInt32                         TextEncodingFormat
  231.  
  232.  
  233.                                                             ; Default TextEncodingFormat for any TextEncodingBase
  234. kTextEncodingDefaultFormat        EQU        0                    ; Formats for Unicode & ISO 10646
  235. kUnicode16BitFormat                EQU        0
  236. kUnicodeUTF7Format                EQU        1
  237. kUnicodeUTF8Format                EQU        2
  238. kUnicode32BitFormat                EQU        3
  239. ;  TextEncoding type 
  240. ; typedef UInt32                         TextEncoding
  241.  
  242. ;  name part selector for GetTextEncodingName
  243. ; typedef UInt32                         TextEncodingNameSelector
  244.  
  245.  
  246. kTextEncodingFullName            EQU        0
  247. kTextEncodingBaseName            EQU        1
  248. kTextEncodingVariantName        EQU        2
  249. kTextEncodingFormatName            EQU        3
  250. ;  Types used in conversion 
  251. TextEncodingRun            RECORD 0
  252. offset                     ds.l    1                ; offset: $0 (0)
  253. textEncoding             ds.l    1                ; offset: $4 (4)
  254. sizeof                     EQU *                    ; size:   $8 (8)
  255.                         ENDR
  256. ; typedef struct TextEncodingRun *        TextEncodingRunPtr
  257.  
  258. ; typedef struct TextEncodingRun *        ConstTextEncodingRunPtr
  259.  
  260. ScriptCodeRun            RECORD 0
  261. offset                     ds.l    1                ; offset: $0 (0)
  262. script                     ds.w    1                ; offset: $4 (4)
  263. sizeof                     EQU *                    ; size:   $6 (6)
  264.                         ENDR
  265. ; typedef struct ScriptCodeRun *        ScriptCodeRunPtr
  266.  
  267. ; typedef struct ScriptCodeRun *        ConstScriptCodeRunPtr
  268.  
  269. ; typedef UInt8 *                        TextPtr
  270.  
  271. ; typedef UInt8 *                        ConstTextPtr
  272.  
  273. ;  Basic types for Unicode characters and strings: 
  274. ; typedef UniChar *                        UniCharArrayPtr
  275.  
  276. ; typedef const UniChar *                ConstUniCharArrayPtr
  277.  
  278. ;  enums for TextEncoding Conversion routines
  279.  
  280. kTextScriptDontCare                EQU        -128
  281. kTextLanguageDontCare            EQU        -128
  282. kTextRegionDontCare                EQU        -128
  283. ;  struct for TECGetInfo
  284.  
  285. TECInfo                    RECORD 0
  286. format                     ds.w    1                ; offset: $0 (0)        ;  format code for this struct
  287. tecVersion                 ds.w    1                ; offset: $2 (2)        ;  TEC version in BCD, e.g. 0x0121 for 1.2.1
  288. tecTextConverterFeatures  ds.l    1                ; offset: $4 (4)        ;  bitmask indicating TEC features/fixes
  289. tecUnicodeConverterFeatures  ds.l 1                ; offset: $8 (8)        ;  bitmask indicating UnicodeConverter features/fixes
  290. tecTextCommonFeatures     ds.l    1                ; offset: $C (12)        ;  bitmask indicating TextCommon features/fixes
  291. tecTextEncodingsFolderName  ds    Str31            ; offset: $10 (16)        ;  localized name of Text Encodings folder (pascal string)
  292. tecExtensionFileName     ds        Str31            ; offset: $30 (48)        ;  localized name of TEC extension (pascal string)
  293. sizeof                     EQU *                    ; size:   $50 (80)
  294.                         ENDR
  295. ; typedef struct TECInfo *                TECInfoPtr
  296.  
  297. ; typedef TECInfoPtr *                    TECInfoHandle
  298.  
  299. ;  Value for TECInfo format code
  300.  
  301. kTECInfoCurrentFormat            EQU        1                    ; any future formats will just add fields at the end
  302.  
  303. ;   Defined feature/fix bits for tecUnicodeConverterFeatures field
  304. ;   Bit:                                Meaning if set:
  305. ;   ----                                ---------------
  306. ;   kTECKeepInfoFixBit                Unicode Converter no longer ignores other control flags if
  307. ;                                      kUnicodeKeepInfoBit is set. Bug fix in TEC Manager 1.2.1.
  308. ;   kTECFallbackTextLengthFixBit        Unicode Converter honors the *srcConvLen and *destConvLen
  309. ;                                      returned by caller-supplied fallback handler for any status it
  310. ;                                      returns except for kTECUnmappableElementErr (previously it only
  311. ;                                      honored these values if noErr was returned). Bug fix in TEC
  312. ;                                      Manager 1.2.1.
  313. ;   kTECTextRunBitClearFixBit        ConvertFromUnicodeToTextRun & ConvertFromUnicodeToScriptCodeRun
  314. ;                                      function correctly if the kUnicodeTextRunBit is set (previously
  315. ;                                      their determination of best target encoding was incorrect). Bug
  316. ;                                      fix in TEC Manager 1.3.
  317. ;   kTECTextToUnicodeScanFixBit        ConvertFromTextToUnicode uses an improved scanner and maintains
  318. ;                                      some resulting state information, which it uses for mapping.
  319. ;                                      This has several effects:
  320. ;                                      - Improved mapping of 0x30-0x39 digits in Mac OS Arabic, fewer
  321. ;                                        direction overrides when mapping Mac OS Arabic & Hebrew, and
  322. ;                                        improved mapping of certain characters in Indic encodings.
  323. ;                                      - Malformed input produces kTextMalformedInputErr.
  324. ;                                      - ConvertFromTextToUnicode accepts and uses the control flags
  325. ;                                        kUnicodeKeepInfoMask and kUnicodeStringUnterminatedMask.
  326. ;                                      Bug fix and enhancement in TEC Manager 1.3.
  327. ;   kTECAddForceASCIIChangesBit        Define new control flag bits kUnicodeForceASCIIRangeBit and
  328. ;                                      kUnicodeNoHalfwidthCharsBit for use with
  329. ;                                      ConvertFromTextToUnicode, ConvertFromUnicodeToText, etc.
  330. ;                                      Enhancement in TEC Manager 1.4.
  331. ;   kTECPreferredEncodingFixBit        CreateUnicodeToTextRunInfo and related functions fix a problem
  332. ;                                      that occurred when a preferred encoding was specified that did
  333. ;                                      not match the System script; the preferred script was not
  334. ;                                      actually placed first in the ordered list of encodings to use.
  335. ;                                      Bug fix in TEC Manager 1.4.
  336.  
  337.  
  338.  
  339.  
  340. kTECKeepInfoFixBit                EQU        0
  341. kTECFallbackTextLengthFixBit    EQU        1
  342. kTECTextRunBitClearFixBit        EQU        2
  343. kTECTextToUnicodeScanFixBit        EQU        3
  344. kTECAddForceASCIIChangesBit        EQU        4
  345. kTECPreferredEncodingFixBit        EQU        5
  346.  
  347. kTECKeepInfoFixMask                EQU        $00000001
  348. kTECFallbackTextLengthFixMask    EQU        $00000002
  349. kTECTextRunBitClearFixMask        EQU        $00000004
  350. kTECTextToUnicodeScanFixMask    EQU        $00000008
  351. kTECAddForceASCIIChangesMask    EQU        $00000010
  352. kTECPreferredEncodingFixMask    EQU        $00000020
  353. ;  Prototypes for TextEncoding functions
  354.  
  355. ;
  356. ; pascal TextEncoding CreateTextEncoding(TextEncodingBase encodingBase, TextEncodingVariant encodingVariant, TextEncodingFormat encodingFormat)
  357. ;
  358.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  359.         IMPORT_CFM_FUNCTION CreateTextEncoding
  360.     ENDIF
  361.  
  362. ;
  363. ; pascal TextEncodingBase GetTextEncodingBase(TextEncoding encoding)
  364. ;
  365.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  366.         IMPORT_CFM_FUNCTION GetTextEncodingBase
  367.     ENDIF
  368.  
  369. ;
  370. ; pascal TextEncodingVariant GetTextEncodingVariant(TextEncoding encoding)
  371. ;
  372.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  373.         IMPORT_CFM_FUNCTION GetTextEncodingVariant
  374.     ENDIF
  375.  
  376. ;
  377. ; pascal TextEncodingFormat GetTextEncodingFormat(TextEncoding encoding)
  378. ;
  379.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  380.         IMPORT_CFM_FUNCTION GetTextEncodingFormat
  381.     ENDIF
  382.  
  383. ;
  384. ; pascal TextEncoding ResolveDefaultTextEncoding(TextEncoding encoding)
  385. ;
  386.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  387.         IMPORT_CFM_FUNCTION ResolveDefaultTextEncoding
  388.     ENDIF
  389.  
  390. ;
  391. ; extern OSStatus GetTextEncodingName(TextEncoding iEncoding, TextEncodingNameSelector iNamePartSelector, RegionCode iPreferredRegion, TextEncoding iPreferredEncoding, ByteCount iOutputBufLen, ByteCount *oNameLength, RegionCode *oActualRegion, TextEncoding *oActualEncoding, TextPtr oEncodingName)
  392. ;
  393.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  394.         IMPORT_CFM_FUNCTION GetTextEncodingName
  395.     ENDIF
  396.  
  397. ;
  398. ; pascal OSStatus TECGetInfo(TECInfoHandle *tecInfo)
  399. ;
  400.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  401.         IMPORT_CFM_FUNCTION TECGetInfo
  402.     ENDIF
  403.  
  404.  
  405. ;
  406. ; pascal OSStatus UpgradeScriptInfoToTextEncoding(ScriptCode iTextScriptID, LangCode iTextLanguageID, RegionCode iRegionID, ConstStr255Param iTextFontname, TextEncoding *oEncoding)
  407. ;
  408.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  409.         IMPORT_CFM_FUNCTION UpgradeScriptInfoToTextEncoding
  410.     ENDIF
  411.  
  412. ;
  413. ; pascal OSStatus RevertTextEncodingToScriptInfo(TextEncoding iEncoding, ScriptCode *oTextScriptID, LangCode *oTextLanguageID, Str255 oTextFontname)
  414. ;
  415.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  416.         IMPORT_CFM_FUNCTION RevertTextEncodingToScriptInfo
  417.     ENDIF
  418.  
  419.  
  420.     ENDIF ; __TEXTCOMMON__ 
  421.  
  422.